-
Notifications
You must be signed in to change notification settings - Fork 145
[Feature] Add NEP as esolver (Useful information to know that NEP has been interfaced with ABACUS) #6603
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(Documents may need to get updated and NEP_GPU may get supported in the future.)
DanielZhao0432
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you to Mosey for helping to bring the NEP_CPU and NEP together and for creating the interface for ABACUS! In the future, all interfaces will be connected to NEP, and NEP will call NEP_CPU as a kernel. I think this idea will make NEP more stable. Hope it will be better!
|
Important feature, thanks for the nice contribution! |
* update NEP_CPU * update toolchain and document * update cmake file * update cmake file * update test * update toolchain script * remove nep_cpu; update test case and toolchain script * update unit test * update test.yml * update related doc. --------- Co-authored-by: Mohan Chen <[email protected]>
* build: 更新 OpenMPI 和 MPICH 版本及其校验值 更新 OpenMPI 从 5.0.7 到 5.0.8 和 MPICH 从 4.3.0 到 4.3.1,并更新对应的 SHA256 校验值 同时更新 README.md 中的任务状态标记 * build(toolchain): 更新依赖库版本和配置 - 更新OpenBLAS到v0.3.30版本 - 更新ELPA到2025.06.001版本 - 将libcomm、cereal、rapidjson、libri指向master分支 * docs(toolchain): 添加ABACUS工具链开发者指南和重构方案文档 添加详细的开发者指南文档,介绍工具链的架构设计、核心功能和实现细节 包含完整的重构方案文档,提出用户友好度改进、代码去冗余、硬编码解决和错误处理统一化的解决方案 * docs(toolchain): 添加项目规则文档以明确代码质量标准和哲学 * docs(project_rules): 更新项目规则文档,添加维护指南 - 补充各stage目录的具体用途说明 - 新增代码维护时的注意事项 - 保持文档与当前项目实践一致 * refactor(toolchain): 简化数学库默认设置逻辑 移除对MKL和AOCL的自动检测,始终默认使用openblas作为数学库 * docs(toolchain): 更新GPU架构选项的说明文档 将GPU架构选项从具体的硬件型号更新为CUDA架构编号,以提供更灵活的兼容性 * feat(toolchain): 更新工具链脚本和依赖版本 refactor(toolchain): 重构工具链安装脚本,增加模块化和错误处理 docs(toolchain): 更新脚本注释和帮助信息 fix(toolchain): 修复OpenBLAS架构检测逻辑 style(toolchain): 统一代码格式和缩进 * docs(toolchain): 更新离线安装推荐说明中的日期和下载步骤 更新推荐离线安装的注释日期至2025年,并调整下载步骤顺序和描述 * fix(openblas): 仅在未找到openblas_dir时解压openblas包 * refactor(toolchain): remove test building scripts * docs(toolchain): 添加ABACUS工具链重构验证报告和进度报告 * feat(工具链): 添加GCC离线安装支持并优化依赖下载逻辑 添加对GCC离线安装的支持,引入repack_filename变量用于打包包含依赖的GCC源码 优化依赖下载逻辑,优先尝试官方源,失败后回退到镜像源 当检测到无网络连接时跳过依赖下载以支持纯离线模式 * docs(toolchain): 添加废弃警告提示并引导迁移到新版本脚本 * feat(工具链): 优化工具链配置管理和安装脚本 - 添加版本配置导出功能以支持阶段脚本 - 优化OpenBLAS架构检测逻辑,提前解压包 - 修复版本验证中的包名大小写问题 - 为ELPA和LibXC添加包变量提前定义 - 改进配置验证器,支持MKL作为ScaLAPACK替代 - 统一多个安装脚本的包变量定义位置 - 重构包版本导出逻辑,动态构建版本字符串 - 更新工具链模板脚本,添加版本控制和执行模式 - 完善文档,记录GCC脚本优化和网络处理改进 - 重构配置管理器,支持更灵活的数学库和MPI设置 * refactor(工具链): 优化脚本架构并修复ELPA与MKL集成问题 重构工具链脚本实现模块化架构,修复ELPA在使用MKL时的BLACS检测问题。主要变更包括: 1. 移除过时注释和冗余代码 2. 为所有安装脚本添加pack-run模式支持 3. 优化MKL环境变量设置,适配不同MPI实现 4. 修复ELPA安装时的SCALAPACK配置传递 5. 更新Intel编译器默认使用ifx 6. 改进配置管理器的静默模式处理 重构后工具链更易维护且完全兼容现有功能,为后续扩展奠定基础 * feat(toolchain): 更新工具链版本至2025.3并重构构建脚本 更新VERSION文件至2025.3版本 统一各工具链脚本中的作者和日期信息 重构构建脚本以支持MLALGO功能并优化GPU支持 添加ABACUS构建脚本自动生成功能开发文档 * docs(toolchain): 更新文档和作者信息 refactor(ui): 改进终端用户界面和输出信息 - 添加彩色输出和更美观的进度显示 - 优化安装完成后的使用说明格式 - 增强MPI检测时的信息显示 chore: 移除过时的离线安装说明 * docs(toolchain): 在构建脚本中注释CUDA编译器路径选项 * feat(工具链): 新增智能证书验证策略和并行编译控制功能 新增DOWNLOAD_CERT_POLICY环境变量支持strict|smart|skip三种证书验证模式 移除-j参数并改用NPROCS_OVERWRITE环境变量控制并行编译核数 更新README文档详细说明新功能和使用方法 * refactor(toolchain): 统一MPI实现参数名并更新文档 将各工具链脚本中的MPI实现参数从`MPI_IMPLEMENTATION`统一改为`MPI_MODE`以保持一致性 更新README文档,添加新功能说明并删除过时的Details.md文件 * [Feature] Add NEP as esolver (#6603) * update NEP_CPU * update toolchain and document * update cmake file * update cmake file * update test * update toolchain script * remove nep_cpu; update test case and toolchain script * update unit test * update test.yml * update related doc. --------- Co-authored-by: Mohan Chen <[email protected]> * feat(ui): 优化用户界面兼容性和错误提示 增加Unicode图标的三级fallback策略,确保在不同终端环境下的显示兼容性 增强GCC版本检查的错误提示,提供详细的问题分析和解决方案 添加glibc版本检测和系统信息摘要功能 改进版本号显示功能,支持智能查找VERSION文件 更新帮助文档和进度报告,反映最新优化内容 * refactor(toolchain): 将NEP选项加入注释 * style(toolchain): 统一调整可选特性的变量顺序 * feat(toolchain): 添加NEP包支持并更新相关文档 在工具链中添加NEP(Neural Evolution Potential)包支持,包括: 1. 在package_versions.sh中添加版本管理 2. 更新config_manager.sh中的配置项 3. 修改install_nep.sh使用集中版本管理 4. 更新用户界面显示 5. 添加NEP集成案例文档 6. 更新README中的包列表和文档 此变更使工具链支持NEP包的安装和配置,为ABACUS提供机器学习势能支持 * feat(toolchain): 增强package-version参数支持多键值对 修复--package-version参数仅支持单个键值对的问题,现支持两种写法: 1. 多个独立参数:--package-version PKG1:VER1 --package-version PKG2:VER2 2. 单个参数多键值对:--package-version PKG1:VER1 PKG2:VER2 同时更新相关文档说明和README,添加环境变量使用注意事项 * add system option for libcomm, libri and libnpy * refactor(toolchain): 对stage4的头文件添加system和path选项支持 * fix(toolchain): 移除合并冲突标记并改进配置验证 重构配置验证逻辑以更精确检查cmake依赖 当使用系统cmake时增加额外检查 * feat(validator): 优化系统检测与错误计数机制 - 新增错误组概念,区分逻辑错误与描述行,提供准确错误计数 - 实现智能cmake检查,根据用户配置进行条件验证和版本检测 - 增强GCC工具链验证,包括版本一致性检查和最小版本要求 - 提供更详细的错误信息和解决方案指导 * refactor(toolchain): 统一安装脚本中环境变量设置的格式和顺序 确保在system选项下,环境变量不会被额外写入setup中 * move a doc * chore: remove Trae Files * fix(install_nep.sh): unify --pack-run exit way * refactor(toolchain): clean the redundant and out-dated comments * Update paths in install_cereal.sh for include directory Modify the wrong paths. * Fix path setup for cereal installation script * Fix CEREAL include path in build script The Include Dir should be "include/", not "include/cereal/". --------- Co-authored-by: m0sey <[email protected]> Co-authored-by: Mohan Chen <[email protected]> Co-authored-by: Levi Zhou <[email protected]>
* update NEP_CPU * update toolchain and document * update cmake file * update cmake file * update test * update toolchain script * remove nep_cpu; update test case and toolchain script * update unit test * update test.yml * update related doc. --------- Co-authored-by: Mohan Chen <[email protected]>
* build: 更新 OpenMPI 和 MPICH 版本及其校验值 更新 OpenMPI 从 5.0.7 到 5.0.8 和 MPICH 从 4.3.0 到 4.3.1,并更新对应的 SHA256 校验值 同时更新 README.md 中的任务状态标记 * build(toolchain): 更新依赖库版本和配置 - 更新OpenBLAS到v0.3.30版本 - 更新ELPA到2025.06.001版本 - 将libcomm、cereal、rapidjson、libri指向master分支 * docs(toolchain): 添加ABACUS工具链开发者指南和重构方案文档 添加详细的开发者指南文档,介绍工具链的架构设计、核心功能和实现细节 包含完整的重构方案文档,提出用户友好度改进、代码去冗余、硬编码解决和错误处理统一化的解决方案 * docs(toolchain): 添加项目规则文档以明确代码质量标准和哲学 * docs(project_rules): 更新项目规则文档,添加维护指南 - 补充各stage目录的具体用途说明 - 新增代码维护时的注意事项 - 保持文档与当前项目实践一致 * refactor(toolchain): 简化数学库默认设置逻辑 移除对MKL和AOCL的自动检测,始终默认使用openblas作为数学库 * docs(toolchain): 更新GPU架构选项的说明文档 将GPU架构选项从具体的硬件型号更新为CUDA架构编号,以提供更灵活的兼容性 * feat(toolchain): 更新工具链脚本和依赖版本 refactor(toolchain): 重构工具链安装脚本,增加模块化和错误处理 docs(toolchain): 更新脚本注释和帮助信息 fix(toolchain): 修复OpenBLAS架构检测逻辑 style(toolchain): 统一代码格式和缩进 * docs(toolchain): 更新离线安装推荐说明中的日期和下载步骤 更新推荐离线安装的注释日期至2025年,并调整下载步骤顺序和描述 * fix(openblas): 仅在未找到openblas_dir时解压openblas包 * refactor(toolchain): remove test building scripts * docs(toolchain): 添加ABACUS工具链重构验证报告和进度报告 * feat(工具链): 添加GCC离线安装支持并优化依赖下载逻辑 添加对GCC离线安装的支持,引入repack_filename变量用于打包包含依赖的GCC源码 优化依赖下载逻辑,优先尝试官方源,失败后回退到镜像源 当检测到无网络连接时跳过依赖下载以支持纯离线模式 * docs(toolchain): 添加废弃警告提示并引导迁移到新版本脚本 * feat(工具链): 优化工具链配置管理和安装脚本 - 添加版本配置导出功能以支持阶段脚本 - 优化OpenBLAS架构检测逻辑,提前解压包 - 修复版本验证中的包名大小写问题 - 为ELPA和LibXC添加包变量提前定义 - 改进配置验证器,支持MKL作为ScaLAPACK替代 - 统一多个安装脚本的包变量定义位置 - 重构包版本导出逻辑,动态构建版本字符串 - 更新工具链模板脚本,添加版本控制和执行模式 - 完善文档,记录GCC脚本优化和网络处理改进 - 重构配置管理器,支持更灵活的数学库和MPI设置 * refactor(工具链): 优化脚本架构并修复ELPA与MKL集成问题 重构工具链脚本实现模块化架构,修复ELPA在使用MKL时的BLACS检测问题。主要变更包括: 1. 移除过时注释和冗余代码 2. 为所有安装脚本添加pack-run模式支持 3. 优化MKL环境变量设置,适配不同MPI实现 4. 修复ELPA安装时的SCALAPACK配置传递 5. 更新Intel编译器默认使用ifx 6. 改进配置管理器的静默模式处理 重构后工具链更易维护且完全兼容现有功能,为后续扩展奠定基础 * feat(toolchain): 更新工具链版本至2025.3并重构构建脚本 更新VERSION文件至2025.3版本 统一各工具链脚本中的作者和日期信息 重构构建脚本以支持MLALGO功能并优化GPU支持 添加ABACUS构建脚本自动生成功能开发文档 * docs(toolchain): 更新文档和作者信息 refactor(ui): 改进终端用户界面和输出信息 - 添加彩色输出和更美观的进度显示 - 优化安装完成后的使用说明格式 - 增强MPI检测时的信息显示 chore: 移除过时的离线安装说明 * docs(toolchain): 在构建脚本中注释CUDA编译器路径选项 * feat(工具链): 新增智能证书验证策略和并行编译控制功能 新增DOWNLOAD_CERT_POLICY环境变量支持strict|smart|skip三种证书验证模式 移除-j参数并改用NPROCS_OVERWRITE环境变量控制并行编译核数 更新README文档详细说明新功能和使用方法 * refactor(toolchain): 统一MPI实现参数名并更新文档 将各工具链脚本中的MPI实现参数从`MPI_IMPLEMENTATION`统一改为`MPI_MODE`以保持一致性 更新README文档,添加新功能说明并删除过时的Details.md文件 * [Feature] Add NEP as esolver (deepmodeling#6603) * update NEP_CPU * update toolchain and document * update cmake file * update cmake file * update test * update toolchain script * remove nep_cpu; update test case and toolchain script * update unit test * update test.yml * update related doc. --------- Co-authored-by: Mohan Chen <[email protected]> * feat(ui): 优化用户界面兼容性和错误提示 增加Unicode图标的三级fallback策略,确保在不同终端环境下的显示兼容性 增强GCC版本检查的错误提示,提供详细的问题分析和解决方案 添加glibc版本检测和系统信息摘要功能 改进版本号显示功能,支持智能查找VERSION文件 更新帮助文档和进度报告,反映最新优化内容 * refactor(toolchain): 将NEP选项加入注释 * style(toolchain): 统一调整可选特性的变量顺序 * feat(toolchain): 添加NEP包支持并更新相关文档 在工具链中添加NEP(Neural Evolution Potential)包支持,包括: 1. 在package_versions.sh中添加版本管理 2. 更新config_manager.sh中的配置项 3. 修改install_nep.sh使用集中版本管理 4. 更新用户界面显示 5. 添加NEP集成案例文档 6. 更新README中的包列表和文档 此变更使工具链支持NEP包的安装和配置,为ABACUS提供机器学习势能支持 * feat(toolchain): 增强package-version参数支持多键值对 修复--package-version参数仅支持单个键值对的问题,现支持两种写法: 1. 多个独立参数:--package-version PKG1:VER1 --package-version PKG2:VER2 2. 单个参数多键值对:--package-version PKG1:VER1 PKG2:VER2 同时更新相关文档说明和README,添加环境变量使用注意事项 * add system option for libcomm, libri and libnpy * refactor(toolchain): 对stage4的头文件添加system和path选项支持 * fix(toolchain): 移除合并冲突标记并改进配置验证 重构配置验证逻辑以更精确检查cmake依赖 当使用系统cmake时增加额外检查 * feat(validator): 优化系统检测与错误计数机制 - 新增错误组概念,区分逻辑错误与描述行,提供准确错误计数 - 实现智能cmake检查,根据用户配置进行条件验证和版本检测 - 增强GCC工具链验证,包括版本一致性检查和最小版本要求 - 提供更详细的错误信息和解决方案指导 * refactor(toolchain): 统一安装脚本中环境变量设置的格式和顺序 确保在system选项下,环境变量不会被额外写入setup中 * move a doc * chore: remove Trae Files * fix(install_nep.sh): unify --pack-run exit way * refactor(toolchain): clean the redundant and out-dated comments * Update paths in install_cereal.sh for include directory Modify the wrong paths. * Fix path setup for cereal installation script * Fix CEREAL include path in build script The Include Dir should be "include/", not "include/cereal/". --------- Co-authored-by: m0sey <[email protected]> Co-authored-by: Mohan Chen <[email protected]> Co-authored-by: Levi Zhou <[email protected]>
* build: 更新 OpenMPI 和 MPICH 版本及其校验值 更新 OpenMPI 从 5.0.7 到 5.0.8 和 MPICH 从 4.3.0 到 4.3.1,并更新对应的 SHA256 校验值 同时更新 README.md 中的任务状态标记 * build(toolchain): 更新依赖库版本和配置 - 更新OpenBLAS到v0.3.30版本 - 更新ELPA到2025.06.001版本 - 将libcomm、cereal、rapidjson、libri指向master分支 * docs(toolchain): 添加ABACUS工具链开发者指南和重构方案文档 添加详细的开发者指南文档,介绍工具链的架构设计、核心功能和实现细节 包含完整的重构方案文档,提出用户友好度改进、代码去冗余、硬编码解决和错误处理统一化的解决方案 * docs(toolchain): 添加项目规则文档以明确代码质量标准和哲学 * docs(project_rules): 更新项目规则文档,添加维护指南 - 补充各stage目录的具体用途说明 - 新增代码维护时的注意事项 - 保持文档与当前项目实践一致 * refactor(toolchain): 简化数学库默认设置逻辑 移除对MKL和AOCL的自动检测,始终默认使用openblas作为数学库 * docs(toolchain): 更新GPU架构选项的说明文档 将GPU架构选项从具体的硬件型号更新为CUDA架构编号,以提供更灵活的兼容性 * feat(toolchain): 更新工具链脚本和依赖版本 refactor(toolchain): 重构工具链安装脚本,增加模块化和错误处理 docs(toolchain): 更新脚本注释和帮助信息 fix(toolchain): 修复OpenBLAS架构检测逻辑 style(toolchain): 统一代码格式和缩进 * docs(toolchain): 更新离线安装推荐说明中的日期和下载步骤 更新推荐离线安装的注释日期至2025年,并调整下载步骤顺序和描述 * fix(openblas): 仅在未找到openblas_dir时解压openblas包 * refactor(toolchain): remove test building scripts * docs(toolchain): 添加ABACUS工具链重构验证报告和进度报告 * feat(工具链): 添加GCC离线安装支持并优化依赖下载逻辑 添加对GCC离线安装的支持,引入repack_filename变量用于打包包含依赖的GCC源码 优化依赖下载逻辑,优先尝试官方源,失败后回退到镜像源 当检测到无网络连接时跳过依赖下载以支持纯离线模式 * docs(toolchain): 添加废弃警告提示并引导迁移到新版本脚本 * feat(工具链): 优化工具链配置管理和安装脚本 - 添加版本配置导出功能以支持阶段脚本 - 优化OpenBLAS架构检测逻辑,提前解压包 - 修复版本验证中的包名大小写问题 - 为ELPA和LibXC添加包变量提前定义 - 改进配置验证器,支持MKL作为ScaLAPACK替代 - 统一多个安装脚本的包变量定义位置 - 重构包版本导出逻辑,动态构建版本字符串 - 更新工具链模板脚本,添加版本控制和执行模式 - 完善文档,记录GCC脚本优化和网络处理改进 - 重构配置管理器,支持更灵活的数学库和MPI设置 * refactor(工具链): 优化脚本架构并修复ELPA与MKL集成问题 重构工具链脚本实现模块化架构,修复ELPA在使用MKL时的BLACS检测问题。主要变更包括: 1. 移除过时注释和冗余代码 2. 为所有安装脚本添加pack-run模式支持 3. 优化MKL环境变量设置,适配不同MPI实现 4. 修复ELPA安装时的SCALAPACK配置传递 5. 更新Intel编译器默认使用ifx 6. 改进配置管理器的静默模式处理 重构后工具链更易维护且完全兼容现有功能,为后续扩展奠定基础 * feat(toolchain): 更新工具链版本至2025.3并重构构建脚本 更新VERSION文件至2025.3版本 统一各工具链脚本中的作者和日期信息 重构构建脚本以支持MLALGO功能并优化GPU支持 添加ABACUS构建脚本自动生成功能开发文档 * docs(toolchain): 更新文档和作者信息 refactor(ui): 改进终端用户界面和输出信息 - 添加彩色输出和更美观的进度显示 - 优化安装完成后的使用说明格式 - 增强MPI检测时的信息显示 chore: 移除过时的离线安装说明 * docs(toolchain): 在构建脚本中注释CUDA编译器路径选项 * feat(工具链): 新增智能证书验证策略和并行编译控制功能 新增DOWNLOAD_CERT_POLICY环境变量支持strict|smart|skip三种证书验证模式 移除-j参数并改用NPROCS_OVERWRITE环境变量控制并行编译核数 更新README文档详细说明新功能和使用方法 * refactor(toolchain): 统一MPI实现参数名并更新文档 将各工具链脚本中的MPI实现参数从`MPI_IMPLEMENTATION`统一改为`MPI_MODE`以保持一致性 更新README文档,添加新功能说明并删除过时的Details.md文件 * [Feature] Add NEP as esolver (deepmodeling#6603) * update NEP_CPU * update toolchain and document * update cmake file * update cmake file * update test * update toolchain script * remove nep_cpu; update test case and toolchain script * update unit test * update test.yml * update related doc. --------- Co-authored-by: Mohan Chen <[email protected]> * feat(ui): 优化用户界面兼容性和错误提示 增加Unicode图标的三级fallback策略,确保在不同终端环境下的显示兼容性 增强GCC版本检查的错误提示,提供详细的问题分析和解决方案 添加glibc版本检测和系统信息摘要功能 改进版本号显示功能,支持智能查找VERSION文件 更新帮助文档和进度报告,反映最新优化内容 * refactor(toolchain): 将NEP选项加入注释 * style(toolchain): 统一调整可选特性的变量顺序 * feat(toolchain): 添加NEP包支持并更新相关文档 在工具链中添加NEP(Neural Evolution Potential)包支持,包括: 1. 在package_versions.sh中添加版本管理 2. 更新config_manager.sh中的配置项 3. 修改install_nep.sh使用集中版本管理 4. 更新用户界面显示 5. 添加NEP集成案例文档 6. 更新README中的包列表和文档 此变更使工具链支持NEP包的安装和配置,为ABACUS提供机器学习势能支持 * feat(toolchain): 增强package-version参数支持多键值对 修复--package-version参数仅支持单个键值对的问题,现支持两种写法: 1. 多个独立参数:--package-version PKG1:VER1 --package-version PKG2:VER2 2. 单个参数多键值对:--package-version PKG1:VER1 PKG2:VER2 同时更新相关文档说明和README,添加环境变量使用注意事项 * add system option for libcomm, libri and libnpy * refactor(toolchain): 对stage4的头文件添加system和path选项支持 * fix(toolchain): 移除合并冲突标记并改进配置验证 重构配置验证逻辑以更精确检查cmake依赖 当使用系统cmake时增加额外检查 * feat(validator): 优化系统检测与错误计数机制 - 新增错误组概念,区分逻辑错误与描述行,提供准确错误计数 - 实现智能cmake检查,根据用户配置进行条件验证和版本检测 - 增强GCC工具链验证,包括版本一致性检查和最小版本要求 - 提供更详细的错误信息和解决方案指导 * refactor(toolchain): 统一安装脚本中环境变量设置的格式和顺序 确保在system选项下,环境变量不会被额外写入setup中 * move a doc * chore: remove Trae Files * fix(install_nep.sh): unify --pack-run exit way * refactor(toolchain): clean the redundant and out-dated comments * Update paths in install_cereal.sh for include directory Modify the wrong paths. * Fix path setup for cereal installation script * Fix CEREAL include path in build script The Include Dir should be "include/", not "include/cereal/". --------- Co-authored-by: m0sey <[email protected]> Co-authored-by: Mohan Chen <[email protected]> Co-authored-by: Levi Zhou <[email protected]>
Linked Issue
Fix #6566
Unit Tests and/or Case Tests for my changes
What's changed?